web-dev-qa-db-ja.com

WindowsのgVim制御文字

アプリからいくつかのデータをコピーしましたが、その中には^Dsと^Msがたくさん含まれています。 ^Dを使用して問題なく:%s/^D//gを削除し、^Mのようなもので:%s/^V^M//gを削除できることはわかっていますが、問題は、Windowsで実行していて、^VがCtrl-Vであり、クリップボードからgvimにデータを貼り付けることです。 Windows forvimで^V/ctrl-Vの貼り付け機能をエスケープするにはどうすればよいですか?

から:help CTRL-V-alternative

                                                *CTRL-V-alternative* *CTRL-Q*
Since CTRL-V is used to paste, you can't use it to start a blockwise Visual
selection.  You can use CTRL-Q instead.  You can also use CTRL-Q in Insert
mode and Command-line mode to get the old meaning of CTRL-V.  But CTRL-Q
doesn't work for terminals when it's used for control flow.
8
ischeriad

^ Mに固有の別の方法は、^ Mがキャリッジリターンであるため、:%s/\r//gを使用することです。

5
ischeriad

おなじみのMSWindowsホットキーをコピー、貼り付けなどに使用するには、mswin.vimファイルを構成として使用します。インストールパスから$ HOMEディレクトリがある場所にコピーし、名前を_vimrcに変更します。 :echo $ HOMEと入力して、それがどこにあるかを把握します。通常、C:\ Users\'username'のようなものです。 gVimを再起動すると、通常のWindows Ctrl-V、Ctrl-Cタイプのホットキーが機能するはずです。

もう少しガイダンスが必要な場合は、 。vimrcファイルをWindows 7のどこに配置する必要がありますか? を参照してください。

1
lordmalik

キーストロークを中断して他のアクションに置き換えるconemuや他のプログラム内のviでも同じ問題が発生しました。

^ K(Ctrl-K)を使用して検索と置換の有向グラフを入力することで、これを回避しました。

たとえば、NUL(0x00)文字とCR(^ Mまたは0xd)文字を削除したかった

通常は^ V000と^ V ^ Mを使用しますが、デフォルトの有向グラフを定義すると、次のように使用できます(^ KはCtrlキーとKキーを押していることに注意してください)。

:%s/[^KNU^KCR]//g

これらの有向グラフが機能しない場合は、現在設定されている有向グラフを確認できます。

:Dig

独自の定義方法を確認するには、

:help :Dig
0

使ってください :%s/\r/**\r\l**/g。これにより、キャリッジリターンがWindowsスタイルのキャリッジリターン+改行の組み合わせに変換されます。

0
Alex