ファイルモードが明示的に DOS の場合でも gVim でキャリッジリターン (^M) が表示される
-
18-09-2019 - |
質問
Windows で gVim を使用しています。私のコードが示しているのは ^M
行末の文字。私が使用した :set ff=dos
無駄に。の ^M
既存の行には文字が残りますが、入力した改行には表示されません。モードを Mac に切り替えました (ショー ^J
文字) および unix (も表示されます) ^M
文字)、そして dos に戻ります。他にこれを見た人はいますか?
解決
これが起こります。あなたは100行を持っている場合は、99をrを\ n \され、1つは、\ nをされて、あなたは99 ^ Mの文字が表示されます。修正は、1つの行を見つけて、それを交換することです。またはファイルにDOS2UNIX実行します。あなたがして、Windowsの行末を置き換えることができます:
:%s/\r\(\n\)/\1/g
他のヒント
私は通常私の行末のクリーンアップに次の使用します
:g/^M$/s///
CTRL-Mを取得するには、私は通常し、Ctrl-M、CTRL-Qを入力し、それが中にそれを置く。(一部の環境では、それは、CTRL-Vかもしれし、Ctrl-M。)私はなぜ知らないが、私は<のhref = "https://stackoverflow.com/questions/799417/gvim-showing-carriage-return-m-even-when-file-mode-is-explicitly-dos/799433よりも覚えるのが1を簡単に見つけること#799433" > RQ ののます。
同様:set ff=dos
を行うことを忘れてはいけない、またはあなたがまだUNIXの行末を節約しまいます。
私は、これはすでに回答されているけど、私が使用トリックがある。
:%s/\r/\r/g
これは、Windows CRLFとUNIXの改行を置き換えます。ただ、誰にも問題があった場合に追加しました。
あなたはこれらの文字を無視することができます!
あなたのvimrcにこれを置く
試合無視/ \ R $ /
実際に私にとってうまくいったのは(64ビットWindows、gVIM:7.2 ) は次のとおりです。
:set ffs=dos
だけでなく:ff
のWindows 7上のVim 7.3を実行している私は、次のコマンドを使用します:
:%s/^M/\r/g
私はCTRL + Qで入力した^ Mを作成するには、次にCTRL + Mます。
これはおそらく、あなたの多くのために少しシンプルですが、オフのチャンスにそれは便利です。
richqの回答に基づいて、私はこれらが私のvimrcに有用であることが判明しました。それがマッピングされた元コマンドの場合Vimは動作するように、別のキーストロークを待つことになるので、それは混乱ビットDDなりますのでご注意、二つ目は、通常はコメントアウトされています。
function! D2u() execute '%s/\r\(\n\)/\1/g' endfunction "map d2u :%s/\r\(\n\)/\1/g
まず元と編集モードでcall D2u()
を押して、第二にD2u
を入力することによって実行されます。
これらは混合UNIX / DOSシステム上のファイルを使用したため、通常の余分なCRの行末があります。
最短各ラインの端から単一^ Mを除去するための答え、と私は使用可能な、次のとおりです。
:%s/\r
これに相当します:
:%s/\r//
が、最後のスラッシュが必要とされていません(彼らが想定している)。
は、多くのことを試みたが、次のよう加工した。
:%s/\r/\r/g
注:のG を使用しますが、ファイル全体に影響をしたい場合は、